
#include <iostream>
using namespace std;


template<typename D> class A {
public:
	/*
	template<typename T> void foo( ){
		cout << "A<D>::foo<T>()" << endl;
	}
	*/
	template<typename T> void foo( );
};
template<typename D> template<typename T> void A<D>::foo( ) {
	cout << "A<D>::foo()" << endl;
}

int main() {
	A<int> a;
	a.foo<double>( );

	return 0;
}
